Dynamic Compilation and Optimization of Packet Processing Programs
نویسندگان
چکیده
Data plane compilation is a transformation from a high-level description of the intended packet processing functionality to the underlying data plane architecture. Compilation in this setting is usually done statically, i.e., the input of the compiler is a fixed description of the forwarding plane semantics and the output is code that can accommodate any packet processing behavior set by the controller at runtime. Below we advocate a dynamic approach to data plane compilation instead, where not just the semantics but the intended behavior is also also input to the compiler. We uncover a handful of runtime optimization opportunities that can be leveraged to improve the performance of custom-compiled datapaths beyond what is possible in a static setting.
منابع مشابه
Dynamo: A Staged Compiler Architecture for Dynamic Program Optimization
Optimizing code at run time is appealing because run-time optimizations can make use of values and invariants that cannot be exploited statically. Dynamic optimization can yield code that is superior to statically optimal code. Recent research has shown that dynamic compilation can dramatically improve the performance of a wide range of applications including network packet demultiplexing, spar...
متن کاملInterprocedural Compilation of Fortran D (extended Version) Interprocedural Compilation of Fortran D
Fortran D is a version of Fortran extended with data decomposition speciications. It is designed to provide a machine-independent programming model for data-parallel applications and has heavily innuenced the design of High Performance Fortran (HPF). In previous work we described Fortran D compilation algorithms for individual procedures. This paper presents an interprocedural approach to analy...
متن کاملDesign and Implementation of Annotations for Dynamic Compilation Quals Report
Traditional compilers produce all executable code at compile time. Dynamic compilation produces some executable code at run time, tapping additional opportunities for optimization by doing value-speciic optimization on values that only become known at run time. There are diierent approaches to dynamic compilation, from completely manual, imperative approaches to fully automatic dynamic compilat...
متن کاملDynamic Look Ahead Compilation: A Technique to Hide JIT Compilation Latencies in Multicore Environment
Object-code virtualization, commonly used to achieve software portability, relies on a virtual execution environment, typically comprising an interpreter used for initial execution of methods, and a JIT for native code generation. The availability of multiple processors on current architectures makes it attractive to perform dynamic compilation in parallel with application execution. The major ...
متن کاملPhase-based visualization and analysis of Java programs
Extant JVMs apply dynamic compiler optimizations adaptively, based on the partial execution of the program, with the goal of improving performance. Understanding and characterizing program behavior is of vital importance to such systems. Recent research, primarily in the area of computer architecture, has identified potential optimization opportunities in the repeating patterns in the time-vary...
متن کامل